package com.xiaolin.base.common;

import java.math.BigDecimal;
import java.math.MathContext;

/**
 * @ClassName FreeFalling
 * @Description TODO
 * @Detail 一球从100米高度自由落下，每次落地后反跳回原高度的一半；再落下，求它在 第10次落地时，共经过多少米？第10次反弹多高？
 * @Author MyPC
 * @Date 2020/8/10
 * @Version 1.0
 */
public class FreeFalling {
    public static void main(String[] args) {
        freeFalling(100,10);
    }

    public static void freeFalling(int height,int n){
        //对于精确计算，使用BigDecimal对象
        BigDecimal sum=new BigDecimal("0");
        BigDecimal h=new BigDecimal(height+"");
        if(height<0){
            System.out.println("参数不合法");
            return;
        }
        for(int i=0;i<n;i++){
            sum=sum.add(h);
            h=h.divide(new BigDecimal("2"));
        }
        System.out.println("第"+n+"次落地时，共经过"+sum+"米");
        System.out.println("第"+n+"次反弹"+h+"米");
    }
}
